package com.cheems.cheems_spring_ai.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cheems.cheems_spring_ai.domain.AiOperation;
import com.cheems.cheems_spring_ai.domain.vo.ConversationHistoryVO;
import com.cheems.cheems_spring_ai.domain.vo.ConversationVO;

import java.util.List;

/**
* @author lenovo
* @description 针对表【ai_operation(调用ai记录表)】的数据库操作Service
* @createDate 2025-03-22 18:41:36
*/
public interface AiOperationService extends IService<AiOperation> {

    /**
     * 根据会话ID获取历史对话记录
     * @param conversationId 会话ID
     * @return 该会话下的所有对话记录
     */
    List<AiOperation> getHistoryByConversationId(String conversationId);
    
    /**
     * 根据会话ID获取历史对话记录（VO对象）
     * @param conversationId 会话ID
     * @param henauNumber 用户学号（用于权限验证）
     * @return 该会话下的所有对话记录VO对象
     */
    List<ConversationHistoryVO> getConversationHistoryById(String conversationId, String henauNumber);
    
    /**
     * 根据用户学号获取该用户的所有会话ID
     * @param henauNumber 用户学号
     * @return 该用户的所有会话ID列表
     */
    List<String> getUserConversationIds(String henauNumber);
    
    /**
     * 创建新的会话ID
     * @return 新生成的会话ID
     */
    String createNewConversation();
    
    /**
     * 获取用户的所有会话及其最后一条消息（最多返回最近的5条会话记录）
     * @param henauNumber 用户学号
     * @return 会话信息列表，包含会话ID和最后一条消息
     */
    List<ConversationVO> getUserConversations(String henauNumber);
}
